pub fn dp_rec_mc(amount: u32) -> u32 {
    // TODO: 这里写逻辑
    // todo!()
    let coins = [100, 50, 20, 10, 5, 2, 1];
    let mut dp = vec![u32::MAX; amount as usize + 1];
    dp[0] = 0;

    for &coin in coins.iter() {
        // 使用解引用来获取 coin 的值
        for i in coin as usize..=amount as usize {
            if dp[i - coin] != u32::MAX {
                dp[i] = dp[i].min(dp[i - coin] + 1);
            }
        }
    }

    if dp[amount as usize] == u32::MAX {
        0 // 如果无法凑出金额，返回 0
    } else {
        dp[amount as usize]
    }
}
